#!/bin/python
#coding=utf8
# 根据日期进行二级批量重命名
# 针对日志文本文件的打包文件进行重命名
import commands
import re
import os

# 全局变量
txtFileNameNewTemplate = 'access_log_bmm-%s.txt'
tarFileNameNewTemplate = 'access_log_bmm-%s.tar.gz'

# 获取当前目录下, 文件名包含日期的打包文件
cmd = 'ls *201*.tar.gz'
tarFileNameOlds = commands.getoutput(cmd).split('\n')

# 提取文件名中的日期部分
def getFileDate(fileName):
    pattern = re.compile(r'([0-9]+[0-9-]+)')
    match = pattern.search(fileName)
    result = match.group(1)
    return result
    
# 批量重命名主逻辑
for tarFileNameOld in tarFileNameOlds:
    fileDate = getFileDate(tarFileNameOld)
    txtFileNameNew = txtFileNameNewTemplate % fileDate
    tarFileNameNew = tarFileNameNewTemplate % fileDate
    
    # 解压缩旧的压缩包
    cmd = 'tar -xkzvf %s' % tarFileNameOld
    os.system(cmd)
    
    # 获取旧的文本文件名
    cmd = 'ls *%s.txt' % fileDate
    txtFileNameOld = commands.getoutput(cmd).split('\n')[0]

    # 重命名文本文件名
    cmd = 'mv %s %s' % (txtFileNameOld,txtFileNameNew)
    os.system(cmd)
    
    # 删除旧的压缩包
    os.remove(tarFileNameOld)
    
    # 创建新的压缩包
    cmd = 'tar -czvf %s %s' % (tarFileNameNew,txtFileNameNew)
    os.system(cmd)
    
    # 删除文本文件
    os.remove(txtFileNameNew)
